1. Field of the Invention
The present invention relates to a general analysis system for performing diverse analysis of information in a variety of settings including, in particular, a telephone switch.
2. History of the Prior Art
Broadly speaking, the present invention embraces a novel approach to the analysis of data which replaces what heretofore has been accomplished by implementing each analysis algorithm in an analysis-specific computer program. Instead of creating different computer programs for different types of analyses as is conventional in the art, the novel approach of the present invention contemplates the creation of one generic analysis program and the specification of the differences between analyses in the data acted upon by the generic analysis program. This approach may, therefore, be characterized as data-driven rather than built-in analysis, software-driven. The data may be defined by the user in a simple format which, unlike computer programming language formats, requires little or no special expertise, knowledge, training or skills.
It will be appreciated from the detailed description which follows that the novel approach of the present invention has merit in a broad spectrum of industrial applications. In general, any industrial process control system, which must be customized for different installations and periodically modified at each installation to account for new inputs to, and outputs from, the process, may benefit from the teachings of the present invention. A prime example of such an industrial process may be found in the field of telecommunications and, specifically, in the connection of calls between telephone subscribers. For purposes of the following discussion, the term "switch" or "switching machine" includes, as applicable, a toll traffic control switch, a dedicated cellular switch or a local exchange switch.
Telephone service today is provided to a multiplicity of customers or telephone subscribers through centralized switching. A centralized switching machine in a central office controls the switching of calls to and from local telephone subscribers and communicates with other central offices in the network via trunks. Each central office must perform certain functions in handling a simple call. For example, the central office must monitor and sense that a customer desires service when the customer's telephone goes off-hook and the customer originates a call. Once the central office recognizes that an origination has taken place, i.e., detects the off-hook status of a given line, the central office must connect to the line means for notifying the customer, via a dial tone, for example, that the central office is ready to receive information from the customer, and means for receiving this information. Information, e.g., the called number, is entered by the customer using a rotary dial or a touch-tone keypad and is received and recorded at the central office. This information must then be interpreted by the central office equipment to identify the locale of the called line.
If the called party and the calling party are served by the same central office, i.e., the call is an intraoffice call, a busy test is made of the called line, and if the called line is idle, the called party is alerted, e.g., rung via an audible ring tone. The called line is supervised awaiting an answer by the called party or abandonment by the calling party. If the called party answers, a speech path is established between the parties. The speech path is then supervised during conversation and is disconnected when one of the parties hangs up and the line goes on-hook.
If, on the other hand, the called party is served by a different central office, i.e., the call is an interoffice call, a search is made for an idle direct trunk to the central office which serves the called party or to an intermediate central office which is able to further the progress of the call to the central office of the called party. Information about the called number is transmitted from the originating central office and received by the intermediate central office which delivers the information to the terminating central office. If the called party's line is busy, or the call is blocked somewhere in the network, or the necessary interoffice trunks are all busy, the calling customer is informed via an audible busy, fast busy or reorder tone.
The switching functions incident to handling the simple telephone call illustrated above may be succinctly classified as signal reception, signal interpretation, storage, path selection, network path provision and control, and signal transmission. In addition to these customer service functions, the switching system must register usage and perhaps also calculate, on a periodic basis, the charges associated with the usage originating from a particular directory number. Modern switching machines perform at least some of these and other functions under electronic (wired logic or stored program) control. In particular, the concepts of real time processing, i.e., operation at a rate great enough to keep pace with rapidly changing events, and interactive operation, i.e., ability to interact with, and to accept and process information from, a human on a multi-transaction basis, which have been traditionally associated with computer systems are being increasingly applied to telephone switching machines.
FIG. 1 illustrates schematically some of the many analysis functions which are performed in establishing communications between two telephone subscribers A and B. Subscriber A uses a telephone unit 10 to place a call to subscriber B and is connected to a local exchange 12. The local exchange 12 detects the request for service, i.e., the arrival of the dialed digits, from the A-subscriber and performs a number of analysis procedures (functions) including, in order, a service analysis (SA) 14, a destination analysis (DA) 16 and a routing analysis (RA) 18. While, for the sake of simplicity, only three analysis functions, SA 14, DA 16 and RA 18, are shown in FIG. 1, several more analysis functions may be performed in the local exchange 12 to complete the call from the A-subscriber to the B-subscriber.
The purposes of the SA 14 are to identify the calling subscriber (A-subscriber, in this instance) and to verify that the calling subscriber is entitled to make the call given his or her subscription status and other pertinent considerations. The directory number of the A-subscriber may be examined for these purposes. The main purpose of the DA 16 is to determine the location at which the B-subscriber is connected to the network, i.e, the location of telephone unit 24. For this purpose, the dialed number (B-subscriber telephone number) is interpreted in light of the location of the A-subscriber (same exchange or a different exchange), whether or not the B-subscriber belongs to a centrex group (centrex is a service comparable in features to PBX but implemented with some or all of the control in the central office), and other pertinent factors.
The aim of the RA 18 is to locate a network route through which the call from the A-subscriber to the B-subscriber may be connected. This analysis depends not only on the final destination of the call,. i.e., the B-subscriber location, but also on traffic congestion in the network, i.e., the load on different routes through the network, the nature of the call, i.e., analog or digital, and similar indicia of network capacity. Based on the results of the RA 18, the local exchange 12 may route the call to an intermediate (toll or transit) exchange 20 which, in turn, routes the call through a local exchange 22 to the telephone unit 24 of the B-subscriber.
FIG. 2 illustrates stored program control of the analysis functions performed in the local exchange 12 of FIG. 1. According to FIG. 2, each analysis, e.g., SA 14, DA 16, and RA 18, is implemented with a different analysis program 30. The input to each analysis program 30 includes call parameters, e.g., A-subscriber number and area code, B-subscriber number and area code, etc., which are supplied from a predetermined array of parameters 32. The parameters are analyzed with reference to a data structure 34 which is specified for each type of analysis and which interprets combinations of parameter values and produces an analysis result. Each analysis program 30 and each associated data structure 34 may be controlled by the network operator through a man-machine interface 36. In particular, the network operator may apply appropriate values to the data in each data structure 34 so that the related analysis will produce a desired result given the location of the local exchange 12 in the network, the numbering plan, etc. For example, the operator may choose to alter the manner in which calls to a certain destination are routed within the network by applying appropriate values to the data in the data structure 34 associated with the RA 18.
The prior art analysis approach illustrated in FIG. 2 suffers from a number of drawbacks and shortcomings. In particular, because each different and specialized analysis requires a specific analysis program 30, a specialized (analysis-specific) set of data configured in a specific data structure 34 must be prepared and entered through a specific man-machine interface 36 for each analysis program 30. For example, a data structure 34 defining the numbering plan to be used in the DA 16 and another data structure 34 defining the desired routing patterns in the trunk network to be used in the RA 18 must be specifically prepared for each of these data sets. A considerable amount of programming time and effort by highly skilled personnel must, therefore, be invested in creating and developing each different analysis and the total analysis package. Furthermore, the type of input parameters to, and the nature of output results from, each analysis are all predetermined. Consequently, introduction of new types of parameters or results necessitates either the reprogramming of existing versions or the releasing of new versions of the relevant analysis program(s) 30 and data structure(s) 34, all at significant expense.
In practice, i.e., during actual operation, it is often necessary or desirable to modify a particular analysis function in order, for example, to redirect traffic when the network is overloaded, to measure different parameters such as the volume or density of traffic through a certain part of the network, to include additional parameters in the analysis, and so on. According to prior art analysis systems, such as the system illustrated in FIG. 2, however, the network operator and/or the switch vendor may be burdened with the virtually impossible task of anticipating all future modifications to the network or to a particular switch in the network, or at the very least, with the frequent task of integrating new code with existing code and debugging the resulting combination.
In light of these drawbacks and shortcomings of prior art systems, it is an object of the present invention to provide a general analysis system which is not specific to any single analysis and which can be used for performing a wide variety of analyses notwithstanding the peculiarities of each analysis performed. The general analysis system may be used as a generic analysis system in lieu of the extensive and rather expensive sets of specialized programs and data structures of prior art systems.
It is another object of the present invention to provide a general analysis program and an analysis control data structure within the general analysis system which can be used to perform any desired analysis.
It is yet another object of the present invention to provide a general analysis system in which new functions may be defined in, and new parameters intended to influence the analysis may be indicated from, the analysis control data. New functions and new parameters may be added to an analysis, without reprogramming the general analysis program, by using operator-supplied data in the general analysis program, or customer-supplied data in the analysis control data, which forms the foundation for the analysis.
It is a further object of the present invention to provide a call control data structure which stores input parameters and output results and which further enables parameters to be indicated from the analysis control data.